package it.hive.io.settings;

import it.hive.io.constants.IO_Constants;
import it.hive.io.properties.IOManager;
import it.hive.io.settings.beans.Impostazione;

import java.util.Properties;

public abstract class Settings {
	private Properties propertiesFile;

	public Settings() {
		this(IO_Constants.DEFAULT_CONF_DIR, IO_Constants.DEFAULT_PROPERTY_FILE);
	}

	public Settings(String path, String propertyFileName) {
		propertiesFile = IOManager.leggiPropertiesFile(path, propertyFileName);
	}

	/*
	 * ##########################################################################
	 */

	public boolean salvaImpostazioni(Impostazione... impostazioni) {
		if (impostazioni == null) {
			return false;
		}
		propertiesFile = new Properties();
		for (Impostazione i : impostazioni) {
			propertiesFile.putAll(i.getSettingsMap());
		}
		return IOManager.scriviPropertiesFile(IO_Constants.DEFAULT_CONF_DIR,
				IO_Constants.DEFAULT_PROPERTY_FILE, propertiesFile);
	}

	public void caricaImpostazioni(Impostazione... impostazioni) {
		if (propertiesFile == null) {
			return;
		}
		for (Impostazione i : impostazioni) {
			i.init(propertiesFile);
		}
	}

}
